package sv.com.globalsolutionslt.manejador;

import java.io.Serializable;
import java.util.Date;
import sv.com.globalsolutionslt.controlador.PublicacionFacade;
import javax.ejb.EJB;
import javax.enterprise.context.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.view.ViewScoped;
import sv.com.globalsolutionslt.controlador.PostulacionFacade;
import sv.com.globalsolutionslt.entidades.AreaEmpresa;
import sv.com.globalsolutionslt.entidades.Persona;
import sv.com.globalsolutionslt.entidades.Postulacion;
import sv.com.globalsolutionslt.entidades.Publicacion;
import sv.com.globalsolutionslt.entidades.TipoCargo;

@ManagedBean
@SessionScoped
public class BusquedaEmpleoMB implements Serializable{
    @EJB
    private PostulacionFacade postulacionFacade;
    @EJB
    private PublicacionFacade publicacionFacade;  
    
    
    private AreaEmpresa areaEmpresa;
    private TipoCargo tipoCargo;
    private String palabras;
    private Publicacion publicacion;
    private Postulacion postulacion;
    
    private double pg;
    
    public BusquedaEmpleoMB() {
        areaEmpresa= null;
        tipoCargo= null;
        palabras="";
        pg=0;
    }

    public AreaEmpresa getAreaEmpresa() {return areaEmpresa;}
    public void setAreaEmpresa(AreaEmpresa areaEmpresa) {this.areaEmpresa = areaEmpresa;}

    public TipoCargo getTipoCargo() {return tipoCargo;}
    public void setTipoCargo(TipoCargo tipoCargo) {this.tipoCargo = tipoCargo;}

    public String getPalabras() {return palabras;}
    public void setPalabras(String palabras) {this.palabras = palabras;}

    public Publicacion getPublicacion() {return publicacion;}
    public void setPublicacion(Publicacion publicacion) {this.publicacion = publicacion;}

    public double getPg() {return pg;}
         
    public String inicio(){         
        pg=0;  
        return "/vistas/busquedaEmpleo/busquedaEmpleo";
    }
    public String fin(){   
        pg= Math.ceil(publicacionFacade.CantidadPublicacioneActiva()/10.0)-1;      
        return "/vistas/busquedaEmpleo/busquedaEmpleo";
    }   
    public String siguiente(){        
        if((Math.ceil(publicacionFacade.CantidadPublicacioneActiva()/10.0)-1)!=pg)
            pg+=1;       
        return "/vistas/busquedaEmpleo/busquedaEmpleo";
    }     
    public String atras(){        
        if(pg!=0)
            pg-=1;    
        return "/vistas/busquedaEmpleo/busquedaEmpleo";
    } 
    public String verDetalles(Publicacion p){
        publicacion= p;
        return "/vistas/busquedaEmpleo/detalleEmpleo";
    }    
    public void Aplicar(Integer p, Persona per) throws Exception{
        
        if( publicacionFacade.postulacionExistente(p,per.getIdPersona())==0 ){
            postulacion= new Postulacion();
            postulacion.setIdPersona(per);
            postulacion.setIdPublicacion(publicacionFacade.encontrarPorID(p));
            postulacion.setFechahora(new Date());
            postulacionFacade.crear(postulacion);        
        }
    }    
}